import { Expression } from '../node';


export class BinaryExpression extends Expression {
  /**
   * 左表达式
   */
  readonly left: Expression;

  /**
   * 左表达式
   */
  readonly right: Expression;

  constructor(left: Expression, right: Expression) {
    super();

    this.left = left;
    this.right = right;
  }
}


/**
 * 二元算术加表达式
 */
export class BinaryAddExpression extends BinaryExpression {

}


/**
 * 二元算术减表达式
 */
export class BinarySubtractExpression extends BinaryExpression {

}


/**
 * 二元算术乘表达式
 */
export class BinaryMultiplyExpression extends BinaryExpression {

}


/**
 * 二元算术除表达式
 */
export class BinaryDivideExpression extends BinaryExpression {

}


/**
 * 二元算术求余表达式 %
 */
export class BinaryModulusExpression extends BinaryExpression {

}


/**
 * 二元算术指数表达式 **
 */
export class BinaryPowExpression extends BinaryExpression {

}


/**
 * 二元算术地板除表达式 //
 */
export class BinaryFloorDivideExpression extends BinaryExpression {

}



/**
 * 二元位与表达式
 */
export class BinaryBitwiseAndExpression extends BinaryExpression {

}


/**
 * 二元位或表达式
 */
export class BinaryBitwiseOrExpression extends BinaryExpression {

}


/**
 * 二元位异或表达式
 */
export class BinaryBitwiseXorExpression extends BinaryExpression {

}


/**
 * 二元位左移表达式
 */
export class BinaryBitwiseLeftShiftExpression extends BinaryExpression {

}


/**
 * 二元位右移表达式
 */
export class BinaryBitwiseRightShiftExpression extends BinaryExpression {

}


/**
 * 二元逻辑与表达式
 */
export class BinaryLogicAndExpression extends BinaryExpression {

}


/**
 * 二元逻辑或表达式
 */
export class BinaryLogicOrExpression extends BinaryExpression {

}


/**
 * 二元逻辑异或表达式
 */
export class BinaryLogicXorExpression extends BinaryExpression {

}




/**
 * 二元相等比较表达式
 */
export class BinaryEqualsExpression extends BinaryExpression {

}


/**
 * 二元不等比较表达式
 */
export class BinaryNotEqualsExpression extends BinaryExpression {

}


/**
 * 二元大于比较表达式
 */
export class BinaryGreaterExpression extends BinaryExpression {

}


/**
 * 二元大于等于比较表达式
 */
export class BinaryGreaterEqualsExpression extends BinaryExpression {

}

/**
 * 二元小于比较表达式
 */
export class BinaryLesserExpression extends BinaryExpression {

}


/**
 * 二元小于等于比较表达式
 */
export class BinaryLesserEqualsExpression extends BinaryExpression {

}